package com.leetcode;

import java.util.Scanner;

/**
 * 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
 * <p>
 * 例如，当输入5时，应该输出的三角形为：
 * <p>
 * 1 3 6 10 15
 * <p>
 * 2 5 9 14
 * <p>
 * 4 8 13
 * <p>
 * 7 12
 * <p>
 * 11
 */
public class 蛇形矩阵 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) {
            int a = in.nextInt();
            int horizontalTemp = 1, verticalTemp = 0;
            for (int i = 1; i <= a; i++) {
                horizontalTemp = horizontalTemp + (i - 1);
                verticalTemp = horizontalTemp;
                System.out.print(verticalTemp + " ");
                for (int j = i; j < a; j++) {
                    System.out.print(verticalTemp + j + 1 + " ");
                    verticalTemp = verticalTemp + j + 1;
                }
                System.out.println();
            }
        }
    }

}
